package com.chaodev.base.dao;

import com.chaodev.base.model.DataPageVO;
import com.chaodev.base.model.Dict;
import com.chaodev.base.model.DictDetail;
import com.chaodev.base.model.ZtreeModel;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

@Mapper
public interface DictDao {
    /**
     * 查询'字典列表
     *
     * @param dataPage
     * @return
     */
    List<Dict> dictQuery(DataPageVO dataPage);

    /**
     * 添加'字典信息
     *
     * @param dict
     * @return
     */
    int dictAdd(Dict dict);

    /**
     * 修改'字典信息
     *
     * @param dict
     * @return
     */
    int dictUpdate(Dict dict);

    /**
     * 删除'字典信息
     *
     * @param dict
     * @return
     */
    int dictDelete(Map<String,Object> map);

    /**
     * 获取'字典类型
     *
     * @param map
     * @return
     */
    Dict getDictInfo(Map<String, Object> map);

    /**
     * 校验字典是否存在
     *
     * @param dict
     * @return
     */
    Integer validateDict(Dict dict);

    /**
     * 查询'字典详细列表
     *
     * @param dataPage
     * @return
     */
//    List<DictDetail> dictDetailQuery(DataPage<DictDetail> dataPage);
    List<ZtreeModel> dictDetailQuery(DictDetail dictDetail);
    /**
     * 插入字典详情
     * @param dictDetail
     * @return
     */
    Integer insertDictDetail(DictDetail dictDetail);

    /**
     * 更新字典详情
     * @param dictDetail
     * @return
     */
    Integer updateDictDetail(DictDetail dictDetail);

    /**
     * 删除字典详情
     * @param map
     * @return
     */
    Integer deleteDictDetail(Map<String,Object> map);

    /**
     * 获取单条字典信息
     * @param map
     * @return
     */
    DictDetail getDictDetailInfo(Map<String,Object> map);

    /**
     * 验证字典详情是否存在
     * @param dictDetail
     * @return
     */
    Integer validateDictDetail(DictDetail dictDetail);

    DictDetail getDictDetailInfoById(Map<String,Object> map);
}
